Database Configuration in ASP.NET Core

ASP.NET Core में डेटाबेस का कॉन्फ़िगरेशन

पिछले लेख में हमने लॉगिंग के संदर्भ में कॉन्फ़िगरेशन सोर्स, कॉन्फ़िगरेशन डाटा और कॉन्फ़िगरेशन प्रोवाइडर को समझा है। अब लॉगिंग के बाद डेटाबेस कॉन्फ़िगरेशन के संदर्भ में कॉन्फ़िगरेशन सोर्स, कॉन्फ़िगरेशन डाटा और कॉन्फ़िगरेशन प्रोवाइडर को समझते हैं। ASP.NET Core में यह बिल्कुल उसी कॉन्फ़िगरेशन इंफ्रास्ट्रक्चर का हिस्सा होता है, लेकिन इसका उपयोग आमतौर पर कनेक्शन स्ट्रिंग और EF Core जैसे ORM के संदर्भ में किया जाता है।

चलिए इसी आधार पर तीनों घटकों को — सरल भाषा और शैली में — व्यावहारिक उदाहरणों और स्पष्ट दृष्टिकोण से समझते हैं:

1. Configuration Source (कॉन्फ़िगरेशन स्रोत)

वह जगह या माध्यम जहाँ से डेटाबेस संबंधी सेटिंग्स (जैसे ConnectionStrings) को पढ़ा जाता है।

🔹 आम स्रोत:

स्रोत उदाहरण
appsettings.json "ConnectionStrings": { "Default": "..." }
Environment Variables ConnectionStrings__Default="..."
Secret Manager development में sensitive data छिपाने हेतु
Azure App Configuration क्लाउड में centralized config
Command-Line arguments --ConnectionStrings:Default=...

उदाहरण – appsettings.json:

{ "ConnectionStrings": { "Default": "Server=.;Database=MyAppDb;Trusted_Connection=True;" }}

2. Configuration Provider (कॉन्फ़िगरेशन प्रदाता)

Configuration Source से डेटा को पढ़ने और IConfiguration के रूप में ऐप तक पहुंचाने वाला घटक।

प्रकार:

Provider कार्य
JsonConfigurationProvider appsettings.json को पढ़ता है
EnvironmentVariablesConfigurationProvider OS env vars पढ़ता है
UserSecretsConfigurationProvider dev secrets पढ़ता है
CommandLineConfigurationProvider CLI arguments पढ़ता है

कार्य: सभी प्रोवाइडर्स key-value के रूप में सेटिंग्स को unified रूप में उपलब्ध कराते हैं। जैसे:

var connectionString = configuration["ConnectionStrings:Default"];

3. Configuration Data (कॉन्फ़िगरेशन डेटा)

वह अंतिम डेटा जो IConfiguration के रूप में उपलब्ध होता है और जिसे आप डेटाबेस कॉन्फ़िगरेशन (जैसे EF Core) में inject करते हैं।

यह डेटा HostBuilder द्वारा load होने के बाद runtime में उपलब्‍ध होता है।

उदाहरण:

builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("Default")));

यहाँ builder.Configuration → सभी configuration providers से data ले चुका होता है।

यह तीनों कैसे मिलकर काम करते हैं?


Configuration Source   ↓
 (JSON, Env Vars, Secrets...)
Configuration Provider   ↓
 (key-value pairs में बदलता है)
Configuration Data (IConfiguration)   ↓
Application Code (e.g., AddDbContext)

        

व्यावहारिक दृष्टांत (Metaphor से समझिए):

कल्पना कीजिए कि आपकी एप्लिकेशन एक रसोईघर है, और उसे पकाने के लिए डेटाबेस नाम की सामग्री चाहिए:

घटक उपमा
Configuration Source वह स्थान जहाँ रेसिपी लिखी है (किताब, नोटबुक, वेबसाइट)
Configuration Provider वह व्यक्ति जो रेसिपी पढ़कर आपको समझाता है
Configuration Data अंतिम रूप में वह जानकारी जो आप सीधे इस्तेमाल करते हैं खाना बनाने में (ingredients list, steps)

निष्कर्ष सारणी:

तत्व भूमिका उदाहरण
Configuration Source सेटिंग्स कहाँ से आ रही हैं appsettings.json, Env Vars
Configuration Provider Source को पढ़कर usable format में लाता है JsonConfigurationProvider
Configuration Data वह डेटा जो ऐप runtime में पढ़ती है IConfiguration["ConnectionStrings:Default"]

एक Demo कोड स्निपेट:


var builder = WebApplication.CreateBuilder(args); 
// Source: appsettings.json
// Provider: JsonConfigurationProvider
var connStr = builder.Configuration.GetConnectionString("Default"); 
// Data usage
builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(connStr));

        

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Differences between in-process and out-of-process hosting models

Web Fundamental Concepts in Hindi for Beginners - FAQs with their Answers Part-1

Introduction to ASP.NET Core and Web Frameworks